package com.mediastory.spsserver.api.dao;

import java.util.List;
import java.util.Map;

import net.sf.json.JSONObject;
import com.mediastory.spsserver.api.domain.Content_v1_0;
import com.mediastory.spsserver.api.domain.Notice_v1_0;
import com.mediastory.spsserver.api.domain.UrgencyNotice_v1_0;

/**
 * @author Jaewon Choi
 *
 */
public interface ApiDao {
	
	public List<Object> SelectListCategory(Map<String, Object> condition) throws Exception;
	
	public List<Object> SelectListContent(Map<String, Object> condition) throws Exception;
	public List<Content_v1_0> SelectListContent2(Map<String, Object> condition) throws Exception;
	
	public Integer SelectListContTotalCnt(Map<String, Object> condition) throws Exception;
	
	public List<Object> SelectListMainCont(Map<String, Object> condition) throws Exception;
	
	public List<String> SelectListImgUrl(Map<String, Object> condition) throws Exception;
	
	public Integer SelectListNoticeTotalCnt(Map<String, Object> condition) throws Exception;
	
	public Object SelectNotice(Map<String, Object> condition) throws Exception;
	
	public List<Object> SelectNoticeList(Map<String, Object> condition) throws Exception;
	
	public Object SelectInfo(Map<String, Object> condition) throws Exception;
	
	public Map<String, Object> SelectVerMngr(Map<String, Object> condition) throws Exception;
	
	public List<Object> SelectListAdvertising(Map<String, Object> condition) throws Exception;
	
	public List<Object> SelectListPayContAndriod(Map<String, Object> condition) throws Exception;
	
	public List<Object> SelectListPayContIos(Map<String, Object> condition) throws Exception;
	
	public List<Object> SelectListGuide(Map<String, Object> condition) throws Exception;
	
	public int InsertGcmDevice(Map<String, Object> condition) throws Exception;
	
	public int deleteGcmDevice(Map<String, Object> condition) throws Exception;
	
	public int InsertApnsDevice(Map<String, Object> condition) throws Exception;
	
	public int deleteApnsDevice(Map<String, Object> condition) throws Exception;
	
	public Integer SelectAppSeqId(Map<String, Object> appSeqId) throws Exception;
	
	public Object SelectUrgencyNotice(Map<String, Object> condition) throws Exception;
	
	public Map<String, Object> SelectVerMngr2(Map<String, Object> condition) throws Exception;
	
	public Integer insertContent(JSONObject data) throws Exception;
	
	public int updateContent(JSONObject data) throws Exception;
	
	public int deleteContent(JSONObject data) throws Exception;
	
	public Integer contFileinsert(Map<String, Object> contFile)	throws Exception;
	
	public Integer insertComment(JSONObject data) throws Exception;
	
	public int deleteComment(JSONObject data) throws Exception;
	
	public List<Object> SelectListComment(Map<String, Object> condition) throws Exception;
	
	//로깅
	public Integer insertLogInfo(Map<String, Object> logInfo) throws Exception;
	
	public Map<String, Object> insertCont(Map<String, Object> contLog) throws Exception;
	
	public Map<String, Object> insertPage(Map<String, Object> pageLog) throws Exception;
	
	public Map<String, Object> insertUnit(Map<String, Object> unitLog) throws Exception;
	
	public Map<String, Object> insertDl(Map<String, Object> logDl) throws Exception;
	
	//앱 구동 로그
	public int insertAppLifeCycle(JSONObject appLifeCycle) throws Exception;

	//콘텐츠 다운로드
	public int insertDownCont(JSONObject downCont) throws Exception;
	
	//푸시 메시지 확인
	public int insertConfirmPush(JSONObject confirmPush) throws Exception;
	
	//공지 확인
	public int insertConfirmNoti(JSONObject confirmNoti) throws Exception;
	
	//앱 업데이트
	public int insertAppUpdate(JSONObject appUpdate) throws Exception;
	
	//푸시 설정
	public int insertSetupPush(JSONObject setupPush) throws Exception;
	
	//에러
	public int insertError(JSONObject error) throws Exception;
	
	//이벤트 상세설명 조회
	public int insertDetailedEvent(JSONObject detailedEvent) throws Exception;
	
	//광고 클릭
	public int insertAdClick(JSONObject adClick) throws Exception;
	
	//광고 롤링 
	public int insertAdRolling(JSONObject adRolling) throws Exception;
	
	//콘텐츠 조회
	public int insertViewCont(JSONObject viewCont) throws Exception;
	
	//콘텐츠 상세설명
	public int insertDetailedCont(JSONObject detailedCont) throws Exception;
	
	//화면 조회
	public int insertView(JSONObject view) throws Exception;
	
	//뷰어 로그 
	public int insertViewlog(JSONObject viewlog) throws Exception;
	
	//뷰어 로그 데이타 
	public int insertViewlogData(JSONObject viewlogData) throws Exception;
	
	//구매정보 로그 데이타
	public Integer insertPurLogInfo(Map<String, Object> logInfo) throws Exception;
	
	//구매정보 데이타
	public int insertIosPurchaseData(JSONObject purchaseData) throws Exception;
	
	//구매정보 데이타
	public int insertAndroidPurchaseData(JSONObject purchaseData) throws Exception;
}